Case-based reasoning, illustrated in FIG. 1, compares features of known problems and solutions (referred to as “exemplar cases” 100 or simply “exemplars”) to features of a new problem (referred to as a “target case” 105). The exemplar cases may be organized into domains, such as exemplar case domains 110 and 115. The result of the comparison between each feature of the target case and the corresponding feature of the exemplar case is a similarity metric, representing the degree of matching between the features. The advantage of case-based reasoning is that it is quicker to develop and easier to maintain than other forms of artificial intelligence.
Databases are useful for case-based reasoning because they can store large amounts of data and retrieve it quickly. This is particularly useful for storing vast numbers of exemplars. In an existing case-based reasoning system using a database, illustrated in FIG. 2, data (e.g., a target case and a set of exemplar cases) is extracted from a database 200 and provided to an external program 205. The external program 205 compares the target case to each exemplar case and returns a similarity metric for each comparison to the database system. The database system then selects exemplar cases that best match the target case-based on the similarity metrics. Note that the target case could be retrieved from some source other than the database.